package main

import (
	"fmt"
	"reflect"
)

type T struct {
	A string
}

// 需要注意 receive 是 structt 还是指针
func (t T) String() string {
	return t.A + "1"
}

func main() {

	// structt
	myStruct := T{A: "a"}
	v1 := reflect.ValueOf(myStruct)

	// 打印结构 myStruct 的 field 值
	for i := 0; i < v1.NumField(); i++ {
		fmt.Printf("Field %d: %v\n", i, v1.Field(i)) // => Field 0: a
	}

	// 打印结构 myStruct 的 method 值
	for i := 0; i < v1.NumMethod(); i++ {
		fmt.Printf("Method %d: %v\n", i, v1.Method(i)) // => Method 0: 0x1084e20
	}
}


